終端機第三天!嘗試在資料庫的操作模式中,對資料庫執行 SQL 語法!
animal=# SELECT * FROM animals;
如上SQL語法所述 在 animal 資料庫中,執行 SELECT 查詢語法,查詢 animals 資料表的所有資料。(不好意思一開始名稱沒有取的很好!有點繞口令。)
使用 \d 中繼資料,查看資料庫資訊
| 指令 | 顯示資訊 | 
|---|---|
| \d | 列出所有物件不篩選 | 
| \di | 索引相關 | 
| \dt | 資料表以及擁有者資訊 | 
| \du | 使用者及相關屬性 | 
| \dv | 檢視表以及擁有者 | 
| \dx | 安裝那些套件 | 
可以嘗試一一的在資料庫模式下執行!
## 不切齊、逗號區隔、不顯示總計在最後一行
animal=# \a \f , \pset footer
## 查詢動物資料表
animal=# SELECT * FROM animals;
## 開始匯出模式,輸出到 下方路徑。
animal=# \o 'D:/animals.csv'
## 匯出動物資料表所有資料
animal=# SELECT * FROM animals;
## 可以在下 \o 結束匯出,若沒有結束,會把查詢結果繼續寫到 D:/animals.csv 裡面
animal=# \o
會在D槽輸出一個CSV檔案,這裡使用windowns路徑,要特別注意一下,windowns 路徑也是要使用 「/」,不是反斜線「\」喔!
再把D槽剛剛匯出的資料再匯入資料庫吧!
animal=# DROP TABLE animals;
animal=# CREATE TABLE animals (
animal(#     id bigserial,
animal(#    name varchar(255),
animal(#    created_at timestamp,
animal(#    updated_at timestamp
animal(# );
animal=# \copy animals FROM 'D:/animals.csv' WITH (FORMAT CSV, HEADER);
很貼心的一件事,若一行一行輸入,animal(# 中出現 ( 提醒我們最後要一個 ) 封閉,以免我們SQL語法出錯。
之前有介紹到COPY 的SQL語法,跟這個差在哪邊呢?
COPY 的 SQL 語法可以簡易的匯入資料,但檔案必須要在那台資料庫伺服器的裡,如果你用psql連至遠端操作,檔案在你目前的電腦上,不是在遠端的資料庫伺服器中,就只能使用 \copy 的方法匯入\匯出資料。
黑畫面終端機的第一天,在嘗試並解決錯誤的過程中,有使用到 createdb 新增資料庫的指令,當時沒有設定任何變數,他使用 victor (我電腦的使用者名稱)當擁有者,並建立一個 victor 資料庫。
createdb -U postgres -d ithelp
如上指令碼可以簡單的幫我們建立 ithelp 名稱的資料庫,並設定擁有者為 postgres(預設的那個使用者),不用進資料庫模式後,在下SQL指令。